package packet

import (
	"encoding/hex"
	"hy_808/protocol/hygprs"
)

/*
设备登录包

+0  80 00 30 02 00 02 82
+7  01 00 00 00 34
+12 02 00 00 06 4C
+17 03 20
+19 04 00 00 00 7E
+24 06 62 14 99 0C
+29 07 00 00 00 00 经度
+34 08 00 00 00 00 纬度
+39 1A 01
+41 F2 31 长度不定 目前登录包只启用第一个字节，其值为ASCII的0(0x30)、1（0x31）、2（0x32），车载端使用0和1，其中0表示断开连接，1表示连接(登录);2为通讯服务器使用的通知客户端车辆断开连接值
-5  00 00 04 D2 81
*/

type DeviceLogin struct {
	hygprs.Fields
}

func GenLogin() (p DeviceLogin) {
	data, _ := hex.DecodeString("800030020002820100000034020000064C0320040000007E066214990C070000000008000000001A01F231000004D281")
	return DeviceLogin{hygprs.MakeFields(hygprs.MakePacket(data))}
}

type ConnectAction byte

const (
	CABreak    = 0x30 // 0 断开
	CAConnect  = 0x31 // 1 登录
	CABreakCmd = 0x32 // 2 为通讯服务器使用的通知客户端车辆断开连接值
)

func (p DeviceLogin) SetConnectAction(ca ConnectAction) {
	p.Data[42] = byte(ca)
}
